// Task函子
const fs = require('fs')//node里读取文件用的是fs模块
const {task} = require('folktale/concurrency/task')
const { split,find } = require('lodash/fp')
function readFile(fileName){//读取文件的函数
    return task(resolver=>{//返回task task是个函数 参数固定为 resolver
        fs.readFile(fileName,'utf-8',(err,data)=>{//readFile 异步来执行读取文件 第一个参数是文件名字，第二个是文件格式，第三个是回调函数,node里面是错误优先
            if(err) resolver.reject(err)//如果出错就调用resoler里面的reject方法
            resolver.resolve(data)//执行成功的话
        })
    })
}
readFile('package.json')//会通过task返回一个task函子
    .map(split('\n'))
    .map(find(x=>x.includes('version')))
    .run()//如果想要读取文件 需要调用task提供的run方法
    .listen({//可监听当前的执行状态
        onRejected:err=>{
           console.log(err) 
        },
        onResolved:value=>{
            console.log(value)
        }

    })